Repository navigation
Run page: channel and replicate IDs, no-problems icon, plan card, mask kinds - #241
Merged
Merged
Conversation
…k kinds Step 3 of the notebook, for a described run: plot tabs, titles and findings use channel IDs, plots and legends use replicate IDs (only from the published description the manifest recorded), "no problems found" gets a tick, "What will happen" is hidden after a run until a setting changes, and Describe the masks shows the declared kind beside the suggestion in one Mask column. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G3qp9AxjpGPw9xfWAUJNqc
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G3qp9AxjpGPw9xfWAUJNqc
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The Step 3 run-page label fixes the owner approved on 2026-11-09 (UX proposal Q4: a separate small PR, before the rearrangement). Notebook only; no change to the run, the table or any file written.
run_labels.py(new):RunLabels, built from the publishedmorphobricks.tomlthroughdescription_from_bytes.recorded_labels(output)uses the file only when its SHA-256 equals the one the run's manifest recorded inexperiment_description.notebook_plots.py/notebook_run.py:DNA/ACTIN/PHASE) in a described run. A channel position whose units do not all declare the same ID keepsC<n>. Undescribed runs keepC0/C1/C2. The tabs are 96 px wide soPHASEis not cut off.drug / rep2, legendrep2) instead of the folder name (drug / day2). The condition stays the folder label, as the description's condition IDs are not part of this fix.mask_text.py,mask_answers.py,notebook_mask_step.py,notebook_masks_screen.py: Describe the masks has one Mask column (the ID, with the folder name in brackets only when it differs), and a Declared kind column (objects/regions, the user's answer) beside Kind (suggested). A type with no answer says "not described yet".pyproject.tomldeclares the new module's layer (io);AGENTS.mdrepo map andCHANGELOG.mdupdated.Decisions
Notes for review
drug / rep2) because a replicate ID alone repeats across conditions.tests/channel_images.pyimages and standaloneembed_minimal_html, which lacks JupyterLab styles and icons; not looked at in a real JupyterLab.Tests
tests/test_run_page_labels.py(new, 13 tests): channel tabs/titles, undescribed run, edited description, disagreeing units, replicate IDs, folder names kept, icons, plan card hidden/shown, declared kind, single Mask column, undescribed mask and differing ID. 9 of the new or changed tests fail onmain; the rest guard the unchanged behaviour.tests/test_notebook_mask_step.pyupdated for the new columns.python tools/check.pywith.[dev,notebook,zarr]: ruff check and format clean, code rules pass (shrink-only baseline untouched), 4843 passed, 4 skipped (file-mode and case-sensitivity tests that skip on this file system).🤖 Generated with Claude Code
https://claude.ai/code/session_01G3qp9AxjpGPw9xfWAUJNqc